def isprime(n):
for i in range(2,int(n**0.5)+1):
if n%i==0:
return i
return -1
n,k=map(int, input().split())
f=0
for i in range(1,k+1):
if n%i!=i-1:
f=1
break
if f==0:
print('YES')
else:
print('NO')
#include <cstdio>
#include <set>
typedef long long ll;
int main(){
ll n, k; scanf("%lld %lld", &n, &k);
std::set<ll> s;
bool possible(true);
for(long p = 1; p <= k; p++){
if(s.count(n % p)){possible = false; break;}
s.insert(n % p);
}
puts(possible ? "Yes" : "No");
return 0;
}
17A - Noldbach problem | 1350A - Orac and Factors |
1373A - Donut Shops | 26A - Almost Prime |
1656E - Equal Tree Sums | 1656B - Subtract Operation |
1656A - Good Pairs | 1367A - Short Substrings |
87A - Trains | 664A - Complicated GCD |
1635D - Infinite Set | 1462A - Favorite Sequence |
1445B - Elimination | 1656C - Make Equal With Mod |
567A - Lineland Mail | 1553A - Digits Sum |
1359B - New Theatre Square | 766A - Mahmoud and Longest Uncommon Subsequence |
701B - Cells Not Under Attack | 702A - Maximum Increase |
1656D - K-good | 1426A - Floor Number |
876A - Trip For Meal | 1326B - Maximums |
1635C - Differential Sorting | 961A - Tetris |
1635B - Avoid Local Maximums | 20A - BerOS file system |
1637A - Sorting Parts | 509A - Maximum in Table |